home *** CD-ROM | disk | FTP | other *** search
- /*
- * File: CTypingTask.cp
- * Created: 8/10/93
- * Desc: A task to accumulate characters as the they are typed.
- *
- * Superclass: CTask.
- * Uses: CPane.
- *
- * Note:
- *
- * Original Author: W. Wesley Monroe
- * Copyright © 1993 Animas Software Production. All rights reserved.
- */
-
-
- #include "CTypingTask.h"
- #include "CItemTable.h"
-
- void CTypingTask::ITypingTask(CItemTable *itsTable, short taskIndex)
- {
- fTable = itsTable;
-
- ITask(taskIndex);
-
- fStillTyping = TRUE;
- fAccumulatedChars[0] = 0;
- fStartTicks = TickCount();
- }
-
- void CTypingTask::Dispose(void)
- {
- if(fTable->fTypingTask == this)
- fTable->fTypingTask = NULL;
-
- inherited::Dispose();
- }
-
- Boolean CTypingTask::CanStillType(void)
- {
- return fStillTyping;
- }
-
- void CTypingTask::CancelTyping(void)
- {
-
- fAccumulatedChars[0] = 0;
- }
-
- #define kTimeout 200
-
- void CTypingTask::DoTyping(char aChar)
- {
- short numChars = fAccumulatedChars[0];
- char *buff = fAccumulatedChars;
-
- if(fStartTicks + kTimeout > TickCount()) {
-
- buff[0] = ++numChars;
- buff[numChars] = aChar;
-
- } else {
-
- fStillTyping = FALSE;
- buff[0] = 1;
- buff[1] = aChar;
-
- }
-
- fTable->SelectMatchingText(buff);
- }